#include #include using namespace std; const unsigned int WIDTH = 4096; const unsigned int HEIGHT = 4096; const unsigned int HEADER_SIZE = 54; const unsigned int BYTES_PER_PIXEL = 3; void writeFileHeader(ofstream& fout) { char bfType[3] = "BM"; unsigned int bfSize = WIDTH * HEIGHT * BYTES_PER_PIXEL + HEADER_SIZE; unsigned short bfReserved1 = 0; unsigned short bfReserved2 = 0; unsigned int bfOffBits = HEADER_SIZE; fout.write(bfType, 2); // this should read BM fout.write((char*)&bfSize,4); fout.write((char*)&bfReserved1,2); fout.write((char*)&bfReserved2,2); fout.write((char*)&bfOffBits,4); } void writeInfoHeader(ofstream& fout) { unsigned int biSize = 40; unsigned int biWidth = WIDTH; unsigned int biHeight = HEIGHT; unsigned short biPlanes = 1; unsigned short biBitCount = 24; unsigned int biCompression = 0; unsigned int biSizeImage = WIDTH * HEIGHT * BYTES_PER_PIXEL; unsigned int biXPelsPerMeter = 0; unsigned int biYPelsPerMeter = 0; unsigned int biClrUsed = 0; unsigned int biClrImportant = 0; fout.write((char*)&biSize,4); fout.write((char*)&biWidth,4); fout.write((char*)&biHeight,4); fout.write((char*)&biPlanes,2); fout.write((char*)&biBitCount,2); fout.write((char*)&biCompression,4); fout.write((char*)&biSizeImage,4); fout.write((char*)&biXPelsPerMeter,4); fout.write((char*)&biYPelsPerMeter,4); fout.write((char*)&biClrUsed,4); fout.write((char*)&biClrImportant,4); } void main() { ofstream fout("junk.bmp",ios::binary); writeFileHeader(fout); writeInfoHeader(fout); unsigned char red = 0; unsigned char blue = 0; unsigned char green = 0; int i = 0; for(int r = 0; r < 256; r++) { for(int g = 0, green= 0; g < 256; g++) { for(int b = 0, blue = 0; b < 256; b++) { blue++; fout.write((char*)&blue, 1); fout.write((char*)&green, 1); fout.write((char*)&red, 1); } green++; } red++; } //for(int row = 0; row < HEIGHT; row++) //{ // for(int column = 0;column < WIDTH; column++) // { // red = row * 2; // blue = column * 2; // green++; // fout.write((char*)&blue, 1); // fout.write((char*)&green, 1); // fout.write((char*)&red, 1); // i++; // } // //blue = (blue == 0)?255:0; // //green = (green == 0)?255:0; //} fout.close(); }